(function () {
    const observerSetting = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            // 只处理新增节点
            if (mutation.addedNodes.length) {
                // 动态更新指针主题
                window.updateCursorTheme(window.getSettingsFromUserSettings('cursorTheme', 'select'));
            }
        });
    });
    observerSetting.observe(document.body, {
        childList: true, // 监听直接子节点的添加/删除（如图片中的URL卡片动态加载）
        subtree: false, // 监听所有后代节点的变化（包括下拉菜单的选项展开）
        attributes: false, // 监听属性变化（避免因选中项的data-*或class变化误触发）
        characterData: false, // 监听文本内容变化（如卡片描述文字的修改无需更新指针）
    });

    /**
     * 开关配置（显示类 vs 隐藏类）
     */
    window.switchConfigs = {
        // 显示类开关（state=true 时显示元素）
        show: {
            'autoSwitchWallpaper': '',
            'showYiYan': '#hitokoto_text',
            'showPopularSites': '.top-recommendations .top-sites',
            'showNotify': '#bulletin_box .card-body',
            'showWallpaperButtons': '.windmill'
        },
        // 隐藏类开关（state=true 时隐藏元素）
        hide: {
            'hideSearchBox': '.s-search',
            'hideSearchCategories': '#search-list-menu, #search-list',
            'hideSearchButton': '.super-search-fm .submit > .icon-search'
        },
        // 获取所有开关 key 的快捷方式
        getAllKeys() {
            return [
            ...Object.keys(this.show),
            ...Object.keys(this.hide)
            ];
        }
    };

    /**
     * 滑块配置
     */
    window.rangeConfigs = {
        "maskOpacity": "",
        "blurIntensity": "",
        "switchInterval": "",
        "searchBoxSize": "",
        "searchBoxWidth": "",
        "searchBoxRadius": "",
        "searchBoxHeight": "",
        "searchBoxOpacity": "",
    }
    /**
     * 下拉框配置
     */
    window.selectConfigs = [
        "uiTheme",
        "cursorTheme",
    ]
    /**
     * 颜色选择器配置（注意：调整背景的以 BgColor 结尾、调整字体的以 TextColor 结尾、调整边框的以 BorderColor 结尾）
     */
    window.colorConfigs = {
        // 侧边栏
        "sidebarBgColor": "#sidebar .modal-dialog, #sidebar .modal-dialog .sidebar-logo",
        "menuBgColor": "#sidebar .sidebar-menu .sidebar-item > a",
        "menuItemBgColor": "#sidebar .sidebar-menu .sidebar-item > ul",
        // 一般网站
        "siteBgColor": "#content > .row .url-card > .url-body > a.card .card-body:not(.hot)",
        "siteDescTextColor": "#content .row .url-body > a .card-body:not(.hot) .url-info p",
        // 热门网站
        "hotSiteBgColor": "#content > .row .url-card > .url-body > a.card .card-body.hot",
        "hotSiteDescTextColor": "#content .row .url-body > a .card-body.hot .url-info p",
        "hotSiteLinkTextColor": ".top-recommendations .top-sites a",
        // 搜索框
        "searchBgColor": "#search .super-search-fm #search-text",
        "searchMenuTextColor": "#search #search-list-menu label span",
        "searchSecondMenuTextColor": "#search #search-list .search-group li label span",
        "searchInternalTextColor": ".internal-search-label",
        "newSiteTextColor": "#view-new-site-btn",
        // 一言
        "oneWordTextColor": "#hitokoto_text",
    }
})();